<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>高阶函数，柯里化函数，纯函数，回调函数等</title>
</head>
<body>
    <script>
        // 起点
        // 参数中加入函数，外部调用时，获取传入函数中的参数
        function Fun(val, submethod = () => {} ) {
            submethod('传入参数',1000)
        }
        Fun(50, (txt, val2)=>{
            console.log(txt, val2); // 输出 传入参数 1000
        })

        // ----------------分割线----------------

        // 内置函数/内建函数  alert  prompt  confirm

        // alert('alert是内置函数')
        // let age = prompt('请输入年龄：')
        // console.log('年龄是：' + age);
        // let is = confirm(age + '岁，年龄是否成年？')
        // if(is){
        //     console.log('已经成年');
        // }else {
        //     console.log('还未成年');
        // }

        // 有名函数（使用 函数声明 创建函数）
        function name(val) {
            console.log(val);
            let message = "Hello, I'm JavaScript!"; // 局部变量
        }
        // 注意
        // 函数对外部变量拥有全部的访问权限。函数也可以修改外部变量
        // 只有在没有局部变量的情况下才会使用外部变量
        // 如果在函数内部声明了同名变量，那么函数会 遮蔽 外部变量
        name('大大怪')
        let nameTow = function (val) {
            console.log(val);
        }
        nameTow('小小怪')

        console.log(10 * '10');
        console.log(10 / '10');
        console.log(10 - '10');

        

    </script>
</body>
</html>